﻿/* ******************************************************** */
/* Arcans Project (2010)                                    */
/* Jeu sous forme d'application web entièrement conçu       */
/* et réalisé par Killian Le Maitre                         */
/* Jeu sous licence GNU GPL v3 (voir NOTICE et COPYING)     */
/* ******************************************************** */

//classe statique de connexion
var bl_connex = {
	//méthodes :
		//ouverture de l'encart pour la connexion
	ouverture: function () {
		encart.ouverture("350px", "Connexion : ");
		encart.addLigne("pseudo", "Pseudonyme : ", "text", "", "");
		encart.addLigne("pwd", "Mot de passe : ", "password", "", "");
		encart.addFootBouton("Connexion", "javascript:bl_connex.testConnect();");
		encart.addFootBouton("Annuler", "javascript:encart.fermeture();");
		encart.addFootLien("#", "Vous avez oubliez votre mot de passe ?", "javascript:bl_connex.changeFpwd();");
	},
		//test des éléments de connexion
	testConnect: function () {
		encart.resetAlerte();
		var pseudo = document.getElementById("pseudo").value;
		var pwd = document.getElementById("pwd").value;
		document.getElementById("pwd").value = "";
		if (regval.test(pseudo)) {
			if (regval.test(pwd)) ajaxFun ("acon", 2, new Array(pseudo, hashFun(pwd)), bl_connex.resultat);
			else encart.alerte("erreur", "Le mot de passe n'est pas valide ! (erreur dans l'écriture du mot de passe)");
		}
		else encart.alerte("erreur", "Le pseudonyme n'est pas valide ! (erreur dans l'écriture du pseudonyme)");
	},
		//resultat du test de connection
	resultat: function (result) {
		switch (result) {
			case 0 :
				encart.alerte("erreur", "Le mot de passe ne correspond pas.");
				encart.alerte("erreur", "Si vous avez perdu votre mot de passe, cliquez sur le lien en bas de l'encart."); break;
			case 1 :
				encart.resetHeader(); encart.resetAlerte(); encart.resetTable(); encart.resetFooter();
				encart.alerte("valid", "Vous êtes maintenant connecté. La page va se recharger automatiquement.");
				window.setTimeout("encart.fermeture();", 1500);
				window.setTimeout('location.replace("?p=i");', 1800); break;
			case 2 :
				encart.alerte("erreur", "Vous n'êtes pas inscrit.");
				encart.alerteLien("#", "Pour vous inscrire, cliquez sur ce lien.", "javascript:bl_connex.changeIns();"); break;
			case 3 : encart.alerte("erreur", "Pseudonyme ou mot de passe erroné."); break;
			case 4 :
				encart.alerte("erreur", "Vous avez tenté plus de 10 fois de vous connecter. Vous ne pourrez faire votre prochaine tentative qu'après 24 heures d'attente.");
				encart.alerte("erreur", "Si vous avez été bloqué par erreur, contactez l'administrateur."); break;
		}
	},
		//changement de l'encart pour l'inscription
	changeIns: function () { encart.fermeture(); window.setTimeout("bl_inscrip.ouverture();", 800); },
		//changement de l'encart pour l'oubli de mot de passe
	changeFpwd: function () { encart.fermeture(); window.setTimeout("bl_fpwd.ouverture();", 800); }
}

//classe statique de renouvellement du mot de passe
var bl_fpwd = {
	//méthodes
		//ouverture de l'encart pour la récupération du mot de passe
	ouverture: function () {
		encart.ouverture("400px", "Oubli du mot de passe : ");
		encart.addHeadPara("Veuillez rentrer votre adresse électronique pour confirmer. Vérifiez que le courrier envoyé n'est pas parmi les spam.");
		encart.addHeadPara("Un mot de passe aléatoire vous sera fourni par courrier électronique à l'issue de la validation. Vous pourrez le modifier dans vos paramètres de compte.");
		encart.addLigne("pseudo", "Pseudonyme : ", "text", "", "");
		encart.addLigne("email", "Adresse électronique : ", "text", "", "");
		encart.addFootBouton("Valider", "javascript:bl_fpwd.fpwdValid();");
		encart.addFootBouton("Annuler", "javascript:bl_fpwd.returnCon();");
	},
		//validation de la récupération du mot de passe
	fpwdValid: function () {
		encart.resetAlerte();
		var pseudo = document.getElementById("pseudo").value;
		var email = document.getElementById("email").value;
		if (regval.test(pseudo)) {
			if (regemail.test(email)) ajaxFun("afpwd", 2, new Array(pseudo, email), bl_fpwd.fpwdResult);
			else encart.alerte("erreur", "L'adresse électronique n'est pas valide !");
		}
		else encart.alerte("erreur", "Le pseudonyme est invalide !");
	},
		//Affichage du résultat de la récupération du mot de passe
	fpwdResult: function (res) {
		if (res == "1") {
			encart.resetHeader(); encart.resetTable(); encart.resetFooter();
			encart.alerte("valid", "Votre mot de passe a bien été modifié. Un mail de rappel va vous être envoyé, contenant le nouveau mot de passe, généré aléatoirement.");
			window.setTimeout("encart.fermeture();", 2300);
		}
		else if (res == "2") encart.alerte("erreur", "Le pseudonyme est erroné.");
		else if (res == "3") encart.alerte("erreur", "L'adresse électronique est erronée.");
		else encart.alerte("erreur", "Vos informations n'ont pu être validées. $etes-vous bien inscrit ? Si vous n'avez pas confirmé votre inscription via le courrier électronique, vous ne pouvez pas obtenir un nouveau mot de passe.");
	},
		//changement de l'encart pour la connexion
	returnCon: function () { encart.fermeture(); window.setTimeout("bl_connex.ouverture();", 800); }
}

//classe statique d'inscription
var bl_inscrip = {
	//méthodes :
		//ouverture de l'encart d'inscription
	ouverture: function () {
		encart.ouverture("400px", "Inscription : ");
		encart.addHeadPara("Tous les champs sont à remplir obligatoirement. Seuls les caractères alphanumériques, ainsi que les tirets et le point, sont autorisés.");
		encart.addHeadPara("Votre mot de passe est généré aléatoirement et vous sera fourni par courrier électronique.");
		encart.addLigne("pseudo", "Pseudonyme : ", "text", "Vérifier", "javascript:bl_inscrip.insValid(1);");
		encart.addLigne("email", "Adresse électronique : ", "text", "", "");
		encart.addFootBouton("Inscription", "javascript:bl_inscrip.insValid(2);");
		encart.addFootBouton("Annuler", "javascript:encart.fermeture();");
		encart.addFootLien("#", "Vous n'avez pas reçu le courrier électronique ? Cliquez sur ce lien.", "javascript:bl_inscrip.changeErrmail();");
	},
		//vérification du pseudo, et validation de l'inscription
	insValid: function (level) {
		encart.resetAlerte();
		var pseudo = document.getElementById("pseudo").value;
		if (regval.test(pseudo)) {
			if (level == 1) ajaxFun ("ains", 1, new Array(pseudo), bl_inscrip.resultatPseudo);
			else if (level == 2) {
				var email = document.getElementById("email").value;
				if (regemail.test(email)) ajaxFun("ains2", 2, new Array(pseudo, email), bl_inscrip.resultatIns);
				else encart.alerte ("erreur", "L'adresse électronique n'est pas valide.");
			}
		}
		else encart.alerte("erreur", "Le pseudonyme doit contenir au moins trois caractères alphanumériques, et doit commencer par une lettre.");
	},
		//Affichage du résultat de vérification du pseudonyme
	resultatPseudo: function (res) {
		if (res == 0) encart.alerte("valid", "Vérification du pseudonyme terminée, pseudonyme disponible.");
		else if (res == 2) encart.alerte("erreur", "Le pseudonyme est erroné.");
		else encart.alerte("erreur", "Le Pseudonyme est déjà utilisé.");
	},
		//Affichage du résultat de l'inscription
	resultatIns: function (res) {
		if (res == 0) {
			encart.resetHeader(); encart.resetTable(); encart.resetFooter();
			encart.alerte("valid", "Enregistrement réussi. Vous allez maintenant recevoir un courrier électronique de validation à l'adresse électronique que vous avez spécifié.");
			window.setTimeout("encart.fermeture();", 1900);
			window.setTimeout("location.reload();", 2200);
		}
		else if (res == 2) encart.alerte("erreur", "Le pseudonyme est erroné.");
		else if (res == 3) encart.alerte("erreur", "L'adresse électronique est erronée.");
		else encart.alerte("erreur", "Le pseudonyme est déjà utilisé.");
	},
		//changement de l'encart pour le renvoi du mail d'inscription
	changeErrmail: function () { encart.fermeture(); window.setTimeout("bl_errmail.ouverture();", 800); }
}

//classe statique de renvoi du mail d'inscription
var bl_errmail = {
	//méthodes
		//ouverture de l'encart de renvoi du mail d'inscription
	ouverture: function () {
		encart.ouverture("400px", "Inscription : renvoi du courrier");
		encart.addHeadPara("Cet encart va vous permettre de générer un nouveau courrier électronique avec vos informations de connexion. Le mot de passe a de nouveau été généré aléatoirement.");
		encart.addHeadPara("Il est possible que le courrier soit rangé parmi les spams. Si vous ne recevez toujours pas vos informations de connexion, contactez l'administrateur du site.");
		encart.addLigne("pseudo", "Pseudonyme : ", "text", "", "");
		encart.addLigne("email", "Adresse électronique : ", "text", "", "");
		encart.addFootBouton("Renvoi du courrier", "javascript:bl_errmail.errmailValid();");
		encart.addFootBouton("Annuler", "javascript:bl_errmail.changeIns();");
	},
		//validation du renvoi du mail d'inscription
	errmailValid: function () {
		encart.resetAlerte();
		var pseudo = document.getElementById("pseudo").value;
		var email = document.getElementById("email").value;
		if (regval.test(pseudo)) {
			if (regemail.test(email)) ajaxFun("aerrmail", 2, new Array(pseudo, email), bl_errmail.result);
			else encart.alerte("erreur", "L'adresse électronique n'est pas valide ! (erreur dans l'écriture de l'adresse)");
		}
		else encart.alerte("erreur", "Le pseudonyme n'est pas valide ! (erreur dans l'écriture du pseudonyme)");
	},
		//Affichage du résultat du renvoi du mail d'inscription
	result: function (res) {
		if(res == 1) {
			encart.resetHeader(); encart.resetTable(); encart.resetFooter();
			encart.alerte("valid", "Le courrier électronique a bien été renvoyé, avec un nouveau mot de passe généré aléatoirement. Si vous ne le recevez toujours pas, contactez l'administrateur du site.");
			window.setTimeout("encart.fermeture();", 2200);
		}
		else if (res == 2) {
			encart.alerte("erreur", "Vous avez déjà validé votre inscription. Utilisez la récupération du mot de passe si vous avez oubliez ce dernier");
			encart.alerteLien("#", "Lien direct vers la récupération du mot de passe", "javascript:bl_errmail.changeFpwd();");
		}
		else if (res == 0) encart.alerte("erreur", "Le pseudonyme ne correspond pas à l'adresse électronique.");
		else if (res == 3) encart.alerte("erreur", "Le pseudonyme est erroné.");
		else if (res == 4) encart.alerte("erreur", "L'adresse électronique est erronée.");
		else encart.alerte("erreur", "Le pseudonyme n'est pas enregistré. Verifiez que le pseudonyme est bien celui que vous avez rentré lors de l'inscription.");
	},
		//changement de l'encart pour la récupération du mot de passe
	changefpwd: function () { encart.fermeture(); window.setTimeout("bl_fpwd.ouverture();", 800); },
		//changement de l'encart pour l'inscription
	changeIns: function () { encart.fermeture(); window.setTimeout("bl_inscrip.ouverture();", 800); }
}